English Português

Brunno Soares

Cloud Engineer | DevOps | BI | Data Engineer

Pipeline Devops - Guia Para Iniciantes

Vou deixar abaixo o passo a passo para rodar um pipeline DevOps, desde o código até o deploy, tanto por vídeo e também por escrito.

 

 

Requisitos

 

Configurações

1º Passo: Fazer o Vs Code se conectar com o Github atráves de um token SSH.

Então para criar um token ssh, você vai rodar no terminal o código abaixo, substituindo pelo seu endereço de email usado no Github.

ssh-keygen -t rsa -b 4096 -C "seuemail@exemplo.com"

 

Após rodar o comando, é só da enter até gerar o token, conforme o print:

 

Feito isso, ele vai salvar a chave SSH no seu computador, no diretório .ssh dentro do seu usuário. No nosso caso usamos o padrão, então o arquivo vai ser o id_rsa.pub. Então é só abrir o arquivo (Pode ser com o bloco de notas) e copiar todo o conteúdo dele.

 

Com o conteúdo copiado, abra as configurações do Github e vá em SSH e GPG keys, e clique em: New SSH Key.

 

Feito isso, é só colar o código copiado e dar um nome. No exemplo usamos vscode.

 

Para testar se a conexão usando o token deu certo, basta executar o código abaixo no terminal.

ssh -T git@github.com

 

O sistema vai falar que não conhece o token e vai perguntar se mesmo assim você que continuar a conexão, pode digitar "yes" que ele vai proseguir com o teste, caso de certo, ele vai retornar o nome do usuário com uma mensagem de sucesso, conforme imagem abaixo.

 

2º Passo: Fazer cópia do projeto para a máquina local.

Vocês vão abrir o projeto que vamos usar como exemplo no github: https://github.com/brunnox/devops_pipeline

Após isso, vocês vão criar um Fork do projeto, conforme print abaixo.

 

Depois do Fork, vocês vão ter uma cópia do projeto em um repositório seu, onde você pode mexer e fazer o que quiser. Então para trabalharmos com esse projeto, vamos fazer um clone desse repositório do Github para nossa máquina local, para editarmos no Vs Code.

Para isso, na página do projeto, você deverá clicar na seta ao lado de Code, depois em SSH e por último copiar o código que ele mostra, confome a imagem.

 

Agora com esse código copiado, abra um terminal e navegue até o diretório onde você que salvar seu projeto e passe o seguinte código, substituindo o conteúdo após o git clone, pelo conteúdo que você copiou.

git clone git@github.com:usuarioexemplo/devops_pipeline.git

 

Após isso, ele vai salvar uma cópia do seu projeto do Github na máquina local.

 

3º Passo: Criar um projeto no Google Cloud, criar usuários e dar permissões.

Ao logar no Google Cloud Console, vocês clicam em Selecione um projeto, e depois clique em NOVO PROJETO.

 

Vocês podem dar qualquer nome pro projeto, no exemplo aqui, vou utilizar testpipeline. Feito isso, selecionem o projeto e copiem o Código (anote em algum lugar, depois vamos utilizar).

 

Depois pesquise na barra superior: App Engine e selecione o primeiro resultado.

 

Vamos utilizar o App Engine para rodar nossa aplicação, selecione a região do servidor que esteja mais perto de ti, no meu caso vou usar o servidor da América do Sul, depois clique para criar uma nova conta de serviço.

 

Podem dar o nome que quiser para a conta, o importante é que ela tenha esses papéis:

 

Depois é só avançar e concluir, ai assim que ele gerar o usuário você vai até a aba CHAVES.

 

Clica em adicionar chave e escolhe a opção de Criar uma nova chave, assim que abrir um popup, você seleciona a opção JSON e clica em criar, ele vai fazer o download de um arquivo, deixe ele guardado, que mais pra frente vamos utilizar.

 

Volte na tela do App Engine, clique no botão de atualizar e selecione a conta de serviço que você criou e depois clique em avançar.

 

Depois pesquise na barra superior APIs e serviços.

 

Acesse a aba Biblioteca.

 

Pesquise a primeira API: App Engine Admin API e ative ela.

 

Pesquise a segunda API: Cloud Build API e ative ela.

 

Explicando a Aplicação:

 

Nossa aplicação é bem simples, uma aplicação em python utilizando flask.

 

Na nossa aplicação temos um arquivo requirements.txt onde colocamos as bibliotecas do python que vamos utilizar na nossa aplicação, também temos um arquivo chamado test.py que vai rodar um teste como se fosse um cliente acessando a aplicação.


Mas o arquivo que vai fazer tudo funcionar, é o arquivo pipeline.yml que está dentro do diretório static. Esse arquivo é responsável por rodar todo o pipeline no Github actions, e ele ta dividido em 3 jobs.

Nesse arquivo, na parte de conexão com o GCP é preciso passar o Id do projeto do Google Cloud e também a chave Json gerada, porém como vamos subir esse código o ideal é usarmos os secrets do Github Actions para mascarar esses dados, pro Id do projeto vamos usar GCP_PROJECT_ID e pra chave Json vamos usar GCP_SA_KEY.

 

Deploy

 

Para fazer o deploy da aplicação, agora falta bem pouco, o primeiro ajuste é passar os dados mascarados do Id do projeto e do arquivo Json no Github. 
Ao acessar o projeto no Github, vá para tela de configurações, depois acesse Secrets e Variables e clique em New repository secret.

 

Você vai criar 2 secrets, um para o Json, que vai ser o GCP_SA_KEY e no Secret você vai colar todo o conteúdo do arquivo Json.

 

E o segundo vai ser o GCP_PROJECT_ID onde você vai passar o Id do projeto.

 

Agora para finalizarmos o deploy e colocarmos a aplicação para rodar, precisamos fazer um ajuste. O Github só entende que a aplicação tem um pipeline, se o arquivo de pipeline tiver em um diretório especifíco. 
Você vai criar um diretório na pasta raiz do seu projeto com o seguinte nome ".github" depois dentro desse diretório, você vai criar um diretório novo, chamado "workflows" e ai vai mover o arquivo pipeline.yml que está no diretório static para o diretório workflows.


Feito isso, podemos começar o processo de deploy da nossa aplicação, para isso vamos rodar 3 comandos no terminal dentro do nosso diretório.

Adicioanar todos os arquivos no ambiente de staging dentro do git.

git add .

 

Carrega as mudanças do ambiente de staging para o ambiente master.

git commit -m "Adicionando Workflow"

 

E por último, para carregar nossa mudanças do repositório local pro Github.

git push origin master

 

Agora ao acessar novamente nosso repositório do Github e irmos na aba Actions, vamos ver que tem um workflow em execução.

 

Dentro do workflow podemos ver os 3 jobs ditos anteriormente, e podemos ver que um job depende do outro para rodar.

 

Ao clicar em algum dos jobs que estão sendo executados, você consegue ver os detalhes.

 

Após o deploy completo é só acessarmos novamente o App Engine que vamos ter nossa aplicação. Para testar a aplicação é só clicar no link que o App Engine fornece.

 

Para finalizar aqui, podemos ver um print da aplicação funcionando após ter o seu deploy executado pelo Github Actions.

 

Se esse conteúdo foi útil para você, compartilhe com mais pessoas e me siga nas redes sociais para que eu possa continuar trazendo mais conteúdos para vocês.

c0d3d by BRX